package com.kujie.access.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kujie.access.domain.query.PropertyListQuery;
import com.kujie.common.core.domain.R;
import com.kujie.common.mybatis.core.page.PageQuery;
import com.kujie.access.domain.po.PropertyListManagement;
import com.kujie.access.domain.vo.PropertyListManageVO;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 房源管理 api
 *
 * @author ck
 * @date 2025-05-26
 */
public interface IPropertyListService {

    /**
     * 查询房源列表数据
     *
     * @param propertyListQuery 房源列表对象
     * @param pageQuery 分页参数
     * @return 房源列表集合
     */
    Page<PropertyListManageVO> list(PropertyListQuery propertyListQuery, PageQuery pageQuery);

    /**
     * 查询房源详情
     *
     * @param id 房源id
     * @return 房源信息
     */
    PropertyListManageVO detail(Long id);

    /**
     * 批量删除房源
     *
     * @param ids 房源id集合
     */
    int deleteByIds(List<Long> ids);

    /**
     * 新增房源
     *
     * @param propertyListManagement 房源信息
     */
    boolean insert(PropertyListManagement propertyListManagement);

    /**
     * 房源批量导出
     *
     * @param propertyListQuery 房源信息
     * @param response 响应对象
     * @return 房源数据信息
     */
    List<PropertyListManageVO> batchExport(PropertyListQuery propertyListQuery, HttpServletResponse response);

    /**
     * 房源批量导入
     *
     * @param file 文件对象
     */
    R<?> batchImport(MultipartFile file) throws Exception;
}
